ARIMA (AutoRegressive Integrated Moving Average) এবং SARIMA (Seasonal ARIMA) হল সময়সিরিজ বিশ্লেষণ এবং পূর্বাভাসের জন্য জনপ্রিয় মডেল। এই মডেলগুলি ডেটার পূর্ববর্তী মান এবং চলমান গড়ের ভিত্তিতে ভবিষ্যৎ মান পূর্বাভাস করতে সহায়তা করে। সময়সিরিজ ডেটার মধ্যে যে ধরনের প্যাটার্ন থাকে, তা বিশ্লেষণ করার জন্য ARIMA এবং SARIMA অত্যন্ত কার্যকরী মডেল।
১. ARIMA (AutoRegressive Integrated Moving Average)
ARIMA একটি সময়সিরিজ মডেল যা তিনটি প্রধান অংশে বিভক্ত:
- AR (AutoRegressive): এটি পূর্ববর্তী সময়ের মানের উপর ভিত্তি করে বর্তমান মানের পূর্বাভাস তৈরি করে।
- I (Integrated): এটি ডেটাকে স্থিতিশীল (stationary) করার জন্য ব্যবহৃত হয়। যদি সময়সিরিজ ডেটা স্থিতিশীল না থাকে, তাহলে এটি ডিফারেন্সিং প্রক্রিয়া ব্যবহার করে।
- MA (Moving Average): এটি পূর্ববর্তী পূর্বাভাসের গড় ব্যবহার করে বর্তমান মানের পূর্বাভাস তৈরি করে।
ARIMA মডেলটি ৩টি প্যারামিটার নিয়ে কাজ করে: (p, d, q), যেখানে:
- p: AR অংশের জন্য ল্যাগ (lag) এর সংখ্যা।
- d: ডেটার স্থিতিশীলতা অর্জন করতে ডিফারেন্সিং (differencing) সংখ্যা।
- q: MA অংশের জন্য ল্যাগ (lag) এর সংখ্যা।
ARIMA মডেল ফর্মুলা:
- : বর্তমান মান
- : AR প্যারামিটার
- : MA প্যারামিটার
- : ত্রুটি (error) বা সাদা গোলমাল (white noise)
উদাহরণ (Python):
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.arima.model import ARIMA
# ডেটা লোড
data = pd.read_csv('time_series_data.csv', index_col='Date', parse_dates=True)
# ARIMA মডেল তৈরী করা (p=1, d=1, q=1)
model = ARIMA(data, order=(1, 1, 1))
# মডেল প্রশিক্ষণ
model_fit = model.fit()
# ভবিষ্যৎ মানের পূর্বাভাস
forecast = model_fit.forecast(steps=10)
# পূর্বাভাস দেখানো
print(forecast)
২. SARIMA (Seasonal ARIMA)
SARIMA (Seasonal ARIMA) হল ARIMA মডেলের একটি উন্নত সংস্করণ যা মৌসুমি (seasonal) বৈশিষ্ট্য বিশ্লেষণ এবং পূর্বাভাসের জন্য ব্যবহার করা হয়। সময়সিরিজ ডেটাতে মৌসুমি প্রভাব থাকতে পারে, যেমন, বছরের নির্দিষ্ট সময়ে ডেটার ওঠানামা। SARIMA এই মৌসুমি প্রভাবের উপর ভিত্তি করে ভবিষ্যৎ পূর্বাভাস তৈরি করে।
SARIMA মডেলটি ৭টি প্যারামিটার নিয়ে কাজ করে: (p, d, q) এবং (P, D, Q, s), যেখানে:
- (p, d, q): ARIMA অংশের জন্য প্যারামিটার
- (P, D, Q): মৌসুমী (seasonal) AR, differencing, এবং MA প্যারামিটার
- s: মৌসুমি চক্রের দৈর্ঘ্য (যেমন, মাসে ১২, ত্রৈমাসিকে ৪)
SARIMA মডেল ফর্মুলা:
- : বর্তমান মান
- : প্যারামিটার
- : ত্রুটি
উদাহরণ (Python):
from statsmodels.tsa.statespace.sarimax import SARIMAX
# SARIMA মডেল তৈরী করা (p=1, d=1, q=1, P=1, D=1, Q=1, s=12)
model = SARIMAX(data, order=(1, 1, 1), seasonal_order=(1, 1, 1, 12))
# মডেল প্রশিক্ষণ
model_fit = model.fit()
# ভবিষ্যৎ মানের পূর্বাভাস
forecast = model_fit.forecast(steps=10)
# পূর্বাভাস দেখানো
print(forecast)
ARIMA এবং SARIMA এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | ARIMA | SARIMA |
|---|---|---|
| প্রথমত্ব | মৌসুমি উপাদান না থাকলে ব্যবহার করা হয় | মৌসুমি উপাদান বিশ্লেষণের জন্য ব্যবহৃত হয় |
| প্যারামিটার | ৩টি প্যারামিটার: (p, d, q) | ৭টি প্যারামিটার: (p, d, q) + (P, D, Q, s) |
| প্রয়োগ | স্থিতিশীল (stationary) ডেটার জন্য উপযুক্ত | মৌসুমী ডেটা বিশ্লেষণ এবং পূর্বাভাসের জন্য উপযুক্ত |
কখন ব্যবহার করবেন ARIMA এবং SARIMA?
- ARIMA:
- যখন আপনার ডেটাতে মৌসুমী প্যাটার্ন নেই এবং শুধুমাত্র দীর্ঘমেয়াদি প্রবণতা বা অস্থিরতা থাকে।
- ডেটার পূর্ববর্তী মানের উপর ভিত্তি করে ভবিষ্যৎ পূর্বাভাস তৈরি করতে চাইলে।
- SARIMA:
- যখন ডেটাতে মৌসুমি প্যাটার্ন থাকে, যেমন ঋতু পরিবর্তন, মাসিক/ত্রৈমাসিক ডেটার ওঠানামা ইত্যাদি।
- মৌসুমী এবং সাধারণ প্রবণতার উপর ভিত্তি করে ভবিষ্যৎ পূর্বাভাস তৈরি করতে চাইলে।
সারাংশ
ARIMA এবং SARIMA হল শক্তিশালী সময়সিরিজ মডেল যা ডেটার প্রবণতা এবং মৌসুমী প্যাটার্ন বিশ্লেষণ করে ভবিষ্যৎ পূর্বাভাস তৈরি করতে ব্যবহৃত হয়। ARIMA মৌসুমী প্রভাব ছাড়াই সাধারণ সময়সিরিজ ডেটার জন্য উপযুক্ত, এবং SARIMA মৌসুমী বৈশিষ্ট্য বিশ্লেষণ করতে সহায়ক। এই মডেলগুলি সময়সীমার মধ্যে প্রবণতা এবং পরিবর্তনশীলতাগুলি ধরতে সাহায্য করে, যা ডেটা সায়েন্স, অর্থনীতি, আবহাওয়া পূর্বাভাস, বিক্রয় পূর্বাভাস ইত্যাদিতে ব্যাপকভাবে ব্যবহৃত হয়।
Read more